<?php
/**
 * 动作类基类
 */

include ACTION_PATH.'common/filter.class.php';

abstract class ActionBase {
	protected $_error = '';
	
	protected $template = '';
	
	public static $data;
	
	
	public final function __construct ( ) {
		
		
		$this->init();
		$this->data['formhash']=filter::formhash();
		
		$method = isset ( $_REQUEST['method'] ) ? $_REQUEST['method'] : 'action';
		$this -> $method ( );
		
		/* if(function_exists('$this->'.$method)){
			$this -> $method ( );
		}else{
			show404($method.'方法不存在！');
		} */
		
	}
	
	/**
	 * initialization初始化方法
	 * 因为父类的构造函数，__construct已经被设置为final类，所以子类不能重写__construct构造函数。所以在父类中加一个初始化类，子类重写该方法，会在父类的构造函数中被执行
	 */
	 public function init(){
	 	
	 }
	
	public function __call ( $name, $arguments ) {
		$this -> action ( );
	}
	
	public function template(){
		//声明模板
		$this->template = load_libra('smarty');
	}
	
	/**
	 * 实际请求动作执行方法
	 * @date 2012/11/29
	 */
	abstract public function action (   );
	
	
}
